﻿using Learun.Util;
using System.Collections.Generic;

namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
    /// <summary>
    /// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
    /// Copyright (c) 2013-2018 Hexagon PPM
    /// 创 建：超级管理员
    /// 日 期：2020-12-04 15:20
    /// 描 述：项目管理
    /// </summary>
    public interface ec_projectIBLL
    {
        #region 获取数据
        /// <summary>
        /// 获取页面显示列表数据
        /// <summary>
        /// <param name="queryJson">查询参数</param>
        /// <returns></returns>
        IEnumerable<ec_projectEntity> GetList(string queryJson, Pagination pagination = null);
        /// <summary>
        /// 获取项目选择页面显示列表数据
        /// <summary>
        /// <param name="queryJson">查询参数</param>
        /// <returns></returns>
        IEnumerable<ec_projectEntity> GetProjectSelectPageList(Pagination pagination, string queryJson);
        /// <summary>
        /// 获取实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        ec_projectEntity GetEntity(string keyValue);
        #endregion

        #region 提交数据
        /// <summary>
        /// 删除实体数据
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void DeleteEntity(string keyValue, int projectIndex);
        /// <summary>
        /// 保存实体数据（新增、修改）
        /// <param name="keyValue">主键</param>
        /// <summary>
        /// <returns></returns>
        void SaveEntity(string keyValue, ec_projectEntity entity);
        /// <summary>
        /// 执行sql语句
        /// <param name="projectIndex">项目序号</param>
        /// <param name="listTableName">要复制的表名集合</param>
        /// <param name="isCopyData">是否要复制数据,默认为不复制</param>
        /// <param name="CopyTableData">新建项目时需要复制“是否复制数据”为1的表数据</param>
        /// <summary>
        /// <returns></returns>
        void ExecuteSQL(List<string> listTableName, int projectIndex, bool isCopyData, List<string> CopyTableData);
        #endregion
    }
}
